﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидыЗастрахованныхЛицОбязательногоСтрахования
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"d257a217-a42f-440b-9e2e-2cef1af18ffd\", \"Представление\":\"ГражданеРФ\"}")]
		ГражданеРФ = 0,//Граждане РФ
		[EnumMember(Value = "{\"Ссылка\":\"095906ad-6d0a-47bb-a95e-5219c1946a05\", \"Представление\":\"ПостоянноПроживающиеИностранцы\"}")]
		ПостоянноПроживающиеИностранцы = 1,//Иностранные граждане, постоянно проживающие на территории РФ
		[EnumMember(Value = "{\"Ссылка\":\"bf693eb7-85fe-4524-9713-c1b0069e5b93\", \"Представление\":\"ВременноПроживающиеИностранцы\"}")]
		ВременноПроживающиеИностранцы = 2,//Иностранные граждане, временно проживающие на территории РФ
		[EnumMember(Value = "{\"Ссылка\":\"92b41296-3d22-4663-8d31-2f7963702ad0\", \"Представление\":\"ВременноПребывающиеИностранцы\"}")]
		ВременноПребывающиеИностранцы = 3,//Иностранные граждане, временно пребывающие на территории РФ, без долгосрочных трудовых договоров
		[EnumMember(Value = "{\"Ссылка\":\"f60acb35-6c38-413e-b3aa-f1ccfd45c35d\", \"Представление\":\"ВременноПребывающиеИностранцыСДолгосрочнымиДоговорами\"}")]
		ВременноПребывающиеИностранцыСДолгосрочнымиДоговорами = 4,//Иностранные граждане, временно пребывающие на территории РФ, с которыми заключены долгосрочные трудовые договоры
	}
	public static partial class ВидыЗастрахованныхЛицОбязательногоСтрахования_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ГражданеРФ = new Guid("ef2c2e9e-f11a-fd8f-440b-a42fd257a217");//Граждане РФ
		public static readonly Guid ПостоянноПроживающиеИностранцы = new Guid("19525ea9-94c1-056a-47bb-6d0a095906ad");//Иностранные граждане, постоянно проживающие на территории РФ
		public static readonly Guid ВременноПроживающиеИностранцы = new Guid("b0c11397-9e06-935b-4524-85febf693eb7");//Иностранные граждане, временно проживающие на территории РФ
		public static readonly Guid ВременноПребывающиеИностранцы = new Guid("792f318d-7063-d02a-4663-3d2292b41296");//Иностранные граждане, временно пребывающие на территории РФ, без долгосрочных трудовых договоров
		public static readonly Guid ВременноПребывающиеИностранцыСДолгосрочнымиДоговорами = new Guid("ccf1aab3-45fd-5dc3-413e-6c38f60acb35");//Иностранные граждане, временно пребывающие на территории РФ, с которыми заключены долгосрочные трудовые договоры
		public static ВидыЗастрахованныхЛицОбязательногоСтрахования Получить(this ВидыЗастрахованныхЛицОбязательногоСтрахования Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыЗастрахованныхЛицОбязательногоСтрахования Получить(this ВидыЗастрахованныхЛицОбязательногоСтрахования Значение, Guid Ссылка)
		{
			if(Ссылка == ГражданеРФ)
			{
				return ВидыЗастрахованныхЛицОбязательногоСтрахования.ГражданеРФ;
			}
			else if(Ссылка == ПостоянноПроживающиеИностранцы)
			{
				return ВидыЗастрахованныхЛицОбязательногоСтрахования.ПостоянноПроживающиеИностранцы;
			}
			else if(Ссылка == ВременноПроживающиеИностранцы)
			{
				return ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПроживающиеИностранцы;
			}
			else if(Ссылка == ВременноПребывающиеИностранцы)
			{
				return ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПребывающиеИностранцы;
			}
			else if(Ссылка == ВременноПребывающиеИностранцыСДолгосрочнымиДоговорами)
			{
				return ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПребывающиеИностранцыСДолгосрочнымиДоговорами;
			}
			return ВидыЗастрахованныхЛицОбязательногоСтрахования.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыЗастрахованныхЛицОбязательногоСтрахования Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыЗастрахованныхЛицОбязательногоСтрахования Значение)
		{
			switch (Значение)
			{
				case ВидыЗастрахованныхЛицОбязательногоСтрахования.ГражданеРФ: return ГражданеРФ;
				case ВидыЗастрахованныхЛицОбязательногоСтрахования.ПостоянноПроживающиеИностранцы: return ПостоянноПроживающиеИностранцы;
				case ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПроживающиеИностранцы: return ВременноПроживающиеИностранцы;
				case ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПребывающиеИностранцы: return ВременноПребывающиеИностранцы;
				case ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПребывающиеИностранцыСДолгосрочнымиДоговорами: return ВременноПребывающиеИностранцыСДолгосрочнымиДоговорами;
			}
			return Guid.Empty;
		}
	}
}